package com.atguigu.tingshu.album.mapper;

import com.atguigu.tingshu.model.album.TrackInfo;
import com.atguigu.tingshu.query.album.TrackInfoQuery;
import com.atguigu.tingshu.vo.album.AlbumTrackListVo;
import com.atguigu.tingshu.vo.album.TrackListVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * @author sun
 */
@Mapper
public interface TrackInfoMapper extends BaseMapper<TrackInfo> {


    /**
     * 获取上一个声音的顺序号
     * @param albumId 专辑id
     * @return 上一个声音的顺序号
     */
    Integer getLastTrackOrderNum(@Param("albumId") Long albumId);

    /**
     * 获取用户声音分页列表
     * @param trackListVoPage 分页对象
     * @param trackInfoQuery 查询条件
     * @return 分页列表
     */
    IPage<TrackListVo> selectUserTrackPage(Page<TrackListVo> trackListVoPage,
                                           @Param("trackInfoQuery") TrackInfoQuery trackInfoQuery);

    /**
     * 获取专辑声音分页列表
     * @param page 分页对象
     * @param albumId 专辑id
     * @return 分页列表
     */
    IPage<AlbumTrackListVo> selectAlbumTrackPage(Page<Object> page,
                                                 @Param("albumId")Long albumId);
}
